#include "stm32f10x.h"                  // Device header

u8 LED1_Mode;
u8 LED2_Mode;
u16 LED1_Count;
u16 LED2_Count;

//LED初始化函数
void LED_Iint(void)
{
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
	GPIO_InitTypeDef GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1|GPIO_Pin_2;
	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_Init(GPIOA,&GPIO_InitStructure);
	GPIO_SetBits(GPIOA,GPIO_Pin_1 | GPIO_Pin_2);
}




void LED1_ON(void)
{
	GPIO_ResetBits(GPIOA, GPIO_Pin_1);
}

void LED2_ON(void)
{
	GPIO_ResetBits(GPIOA,GPIO_Pin_2);
}

void LED1_OFF(void)
{
	GPIO_SetBits(GPIOA,GPIO_Pin_1);
}

void LED2_OFF(void)
{
	GPIO_SetBits(GPIOA,GPIO_Pin_2);
}

//获取LED1当前模式
void GetLED1_Mode(u8 Mode)
{
	if(LED1_Mode != Mode)
	{
		LED1_Mode = Mode;
		LED1_Count = 0;	//切换模式时，清除LED1_Count，这样不会影响下一次模式的计数
	}
}

//获取LED2当前模式
void GetLED2_Mode(u8 Mode)
{
	if(LED2_Mode != Mode)
	{
		LED2_Mode = Mode;
		LED2_Count = 0;
	}
}

void LED_Tick()
{
	//以下是LED1的五种模式
	if(LED1_Mode == 0)			//模式0：常灭
	{
		LED1_OFF();
	}
	
	else if(LED1_Mode == 1)	//模式1：常亮
	{
		LED1_ON();
	}
	
	else if(LED1_Mode == 2)	//模式2：慢闪（亮500ms，灭500ms）
	{
		LED1_Count++;
		LED1_Count %= 1000;
		
		if(LED1_Count <= 500)
		{
			LED1_ON();
		}
		else
		{
			LED1_OFF();
		}
	}
	
	else if(LED1_Mode == 3)	//模式3：快闪（亮50ms，灭50ms）
	{
		LED1_Count++;
		LED1_Count %= 100;
		
		if(LED1_Count <= 50)
		{
			LED1_ON();
		}
		else
		{
			LED1_OFF();
		}
	}
	
	else if(LED1_Mode == 4)	//模式4：点闪（亮100ms，灭900ms）
	{
		LED1_Count++;
		LED1_Count %= 1000;
		
		if(LED1_Count <= 100)
		{
			LED1_ON();
		}
		else
		{
			LED1_OFF();
		}
	}
	
	//以下是LED2的五种模式
	if(LED2_Mode == 0)			//模式0：常灭
	{
		LED2_OFF();
	}
	
	else if(LED2_Mode == 1)	//模式1：常亮
	{
		LED2_ON();
	}
	
	else if(LED2_Mode == 2)	//模式2：慢闪（亮500ms，灭500ms）
	{
		LED2_Count++;
		LED2_Count %= 1000;
		
		if(LED2_Count <= 500)
		{
			LED2_ON();
		}
		else
		{
			LED2_OFF();
		}
	}
	
	else if(LED2_Mode == 3)	//模式2：快闪（亮50ms，灭50ms）
	{
		LED2_Count++;
		LED2_Count %= 100;
		
		if(LED2_Count <= 50)
		{
			LED2_ON();
		}
		else
		{
			LED2_OFF();
		}
	}
	
	else if(LED2_Mode == 4)	//模式3：点闪（亮100ms，灭900ms）
	{
		LED2_Count++;
		LED2_Count %= 1000;
		
		if(LED2_Count <= 100)
		{
			LED2_ON();
		}
		else
		{
			LED2_OFF();
		}
	}
}
